package com.bobo.sticky.notes.backup;

import java.io.File;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

/**
 * 解析备份文件
 * @auhor bobo
 * @date 2022/2/15 11:06
 */
public class BackUpParse {

    /**
     * 解析备份文件内容
     * @param filePath
     * @return
     */
    public static List<String> parse(String filePath){
        try {
            // 获取路径信息
            Path path = Paths.get(filePath);
            // 获取文件信息
            File file = path.toFile();
            // 文件不存在，则返回空list
            if (!file.exists()) {
                return Collections.emptyList();
            }
            // 读取文件字节数组数据
            byte[] bytes = Files.readAllBytes(path);
            // 文件字符串
            String fileStr = new String(bytes, "UTF-8");
            String[] strs = fileStr.split("}");
            return Arrays.asList(strs);
        }catch (Exception e){
            e.printStackTrace();
            return Collections.emptyList();
        }
    }

    // /**
    //  * 解析备份文件内容
    //  * @param filePath
    //  * @return
    //  */
    // public static List<BackUpInfo> parse(String filePath){
    //     try {
    //         List<BackUpInfo> buis = new ArrayList<>();
    //         // 获取路径信息
    //         Path path = Paths.get(filePath);
    //         // 获取文件信息
    //         File file = path.toFile();
    //         // 文件不存在，则返回空list
    //         if (!file.exists()){
    //             return buis;
    //         }
    //         // 读取文件字节数组数据
    //         byte[] bytes = Files.readAllBytes(path);
    //         // 文件字符串
    //         String fileStr = new String(bytes, "UTF-8");
    //         // 去掉前后的[]
    //         String subStr = fileStr.substring(1, fileStr.length() - 1);
    //         // 通过 “}” 解析多少条数据
    //         String[] splits = subStr.split("}");
    //         // 遍历数组
    //         for (String str : splits) {
    //             BackUpInfo bui = new BackUpInfo();
    //             buis.add(bui);
    //             // 去掉前面的 ,
    //             if (str.startsWith(",")){
    //                 str = str.substring(1);
    //             }
    //             // 去掉前面的 {
    //             String strbp = str.substring(1);
    //             // 按照 ， 进行解析
    //             String[] splitbp = strbp.split(",");
    //             // 遍历数组
    //             for (String str1 : splitbp) {
    //                 String[] split = str1.split(":");
    //                 if (split.length > 0){
    //                     String key = split[0].substring(1, split[0].length() - 1);
    //                     String val = split[1].substring(1, split[1].length() - 1);
    //                     if (key.contains("content")){
    //                         bui.setContent(val);
    //                     } else if (key.contains("time")){
    //                         bui.setTime(val);
    //                     }
    //                 }
    //             }
    //         }
    //         return buis;
    //     } catch (IOException e) {
    //         e.printStackTrace();
    //         return Collections.emptyList();
    //     }
    // }
}
